package com.github.plushaze.traynotification.animations;

import com.github.plushaze.traynotification.models.CustomStage;
import javafx.util.Duration;

public interface Animation {

    /**
     * Plays both the show and dismiss animation using a sequential transition object
     *
     * @param dismissDelay Amount of delay before starting the dismiss animation
     */
    void playSequential(Duration dismissDelay);

    /**
     * Plays the implemented show animation
     */
    void playShowAnimation();

    /**
     * Plays the implemented dismiss animation
     */
    void playDismissAnimation();

    /**
     * @return whether or not the tray is current showing
     */
    boolean isShowing();

    /**
     * @return The custom stage of the animation
     */
    CustomStage getStage();

}
